package com.cskaoyan.api.object;

/*
        Object类是类层次结构的根类，所有类都直接或者间接的继承自该类

        构造方法
            public Object();

        为什么所有类都会有一个默认的无参构造方法？
            1. 当一个类没有定义构造方法的时候，就会自动添加默认构造方法
            2. 一旦有默认构造方法，在创建子类对象的时候，就可以执行子类对象的隐式初始化
            3. 隐式初始化，默认调用父类的无参构造
            4. 所以最终，一定能保证，调用到Object类的无参构造方法，先初始化Object父类

       Object的成员方法
        public final Class getClass()
        public String toString()
        public boolean equals(Object obj)
        public int hashCode()
        protected void finalize() (不重要)


 */
public class Demo1Defination {

    public static void main(String[] args) {

        // Object类是A类直接父类
        A a = new A();
        a.hashCode();
        a.getClass();

        // Object类是B类间接父类
        B b = new B();
        // 继承自类A的方法
        b.a();
        b.hashCode();
        b.getClass();

    }
}

// 如果一个类没有 通过extends关键字继承另外一个类，它默认继承Object类
// Object类可以是一个类的直接父类
class A {
    public void a() {}
}

class B extends A {

}



